layui.define('form', function (exports) {
    var $ = layui.$,
        admin = layui.admin,
        form = layui.form,
        router = layui.router();

    var regState = false;// 标记当前是否正在注册,如果已经在注册了，那就不需要再提交表单了。

    form.render();

    form.verify({
        username: function(value, item) {
            if(new RegExp("\\s", "g").test(value)) {
                return '用户名不能包含空字符串';
            }
            if(value.length < 6){
                return '用户名至少6个字符';
            }
            if(!new RegExp("^[a-zA-Z0-9_]+$").test(value)){
                return '用户名仅支持字母、数字、下划线';
            }
        },
        password: function(value, item) {
            if(new RegExp("\\s", "g").test(value)) {
                return '密码不能包含空字符串';
            }
            if(value.length < 6){
                return '密码至少6个字符';
            }
        },
        confirmPassword: function(value, item) {
            if(new RegExp("\\s", "g").test(value)) {
                return '确认密码不能包含空字符串';
            }
            if(value.length < 6){
                return '确认密码至少6个字符';
            }
        }
    });

    //提交
    form.on('submit(LAY-user-reg-submit)', function (obj) {
        var field = obj.field;

        //确认密码
        if (field.password !== field.confirmPassword) {
            return layer.msg('确认密码不一致', {icon: 5, time: 2000, anim: 6});
        }

        if (regState) {
            return;
        }

        //请求接口
        admin.req({
            url: '/regUser', //实际使用请改成服务端真实接口
            data: obj.field,
            beforeSend: function () {
                regState = true;
                layer.load(2, {time: 100 * 1000});
            },
            complete: function () {
                regState = false;
                layer.closeAll('loading');
            },
            done: function () {
                layer.msg('注册成功', {icon: 1, time: 1000}, function () {
                    location.hash = '/user/login'; //跳转到登入页
                });
            }
        });

        return false;
    });

    //对外暴露的接口
    exports('reg', {});
});